From: Carlos Garnacho Date: Fri, 19 Jan 2018 09:45:50 +0000 (+0100) Subject: padOsd: Ensure to pick pad devices only X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~994^2^2~100 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=9ad7f59cdbf513cf916131483ec66b736d6785da;p=gnome-shell.git padOsd: Ensure to pick pad devices only If the underlying X11 input driver creates multiple devices from a single device node, we may end up picking up the wrong device. So, instead of picking the first device based on node and bailing out if it's not a pad, pick the first pad that has that device node, and bail out if there is none. https://gitlab.gnome.org/GNOME/gnome-shell/issues/10 Closes: #10 --- diff --git a/js/ui/padOsd.js b/js/ui/padOsd.js index 34ef96bb9..49d36e6dc 100644 --- a/js/ui/padOsd.js +++ b/js/ui/padOsd.js @@ -977,12 +977,12 @@ var PadOsdService = new Lang.Class({ let padDevice = null; devices.forEach(Lang.bind(this, function(device) { - if (deviceNode == device.get_device_node()) + if (deviceNode == device.get_device_node() && + padDevice.get_device_type() == Clutter.InputDeviceType.PAD_DEVICE) padDevice = device; })); - if (padDevice == null || - padDevice.get_device_type() != Clutter.InputDeviceType.PAD_DEVICE) { + if (padDevice == null) { invocation.return_error_literal(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED, "Invalid params");